Memory cells in many conventional non-volatile semiconductor memories include transistors such as floating gate transistors or split gate transistors that have programmable threshold voltages. The threshold voltage of such a transistor in a memory cell indicates a data value stored in the memory cell and is referred to herein as the threshold voltage of the memory cell. For conventional binary memory, each memory cell stores a single bit of data, and the threshold voltage of each memory cell is in either a region of threshold voltages indicating a bit of value zero or a region of threshold voltages indicating a bit of value one. Multi-bit-per-cell memories store multiple bits of data in each memory cell. To represent multiple bits of data, the range of threshold voltages is split into as many regions as there are possible values that can be stored in an individual memory cell. For example, for a two-bit-per-cell memory, the threshold voltage of each memory cell is in one of four regions that correspond to the possible 2-bit values zero to three which can be stored in the memory cell. For a four-bit-per-cell memory, the range of possible threshold voltages for each memory cell includes sixteen regions corresponding to the possible 4-bit values zero to fifteen.
Multi-bit-per-cell memories have the advantage of storing more information per memory cell and therefore more information per integrated circuit area. Accordingly, multi-bit-per-cell memory can be less expensive to manufacture than conventional binary memory having the same capacity. However, with more bits per memory cell, the reads and writes must have higher precision, and the resolution of write and read circuits limits the amount of information that can be stored per cell. Accordingly, there is a need for precise methods and circuits for writing and reading the threshold voltages that correspond to multi-bit digital values.
Some known multi-bit-per-cell memory use read operations that require a number of reference cells, where each reference cell has a threshold voltage centered between two adjacent regions of threshold voltages permitted for representing data values. When writing data, write reference cells are written to the reference levels. This increases increase write time overhead. During a read, a selected memory cell is simultaneously compared to all of the reference cells, and encoding logic converts the results of the comparisons into a multi-bit digital value. The reference cells, comparators, and encoding logic required for these read operations add considerable complexity to the memory, and the complexity increases exponentially with the number of bits per memory cell. For example, a 2-bit-per-cell memory requires three references and associated comparators, and a 4-bit-per-cell memory requires fifteen references and associated comparators. Additionally, as the number of bits increases, the complexity of the encoding logic, the precision with which the reference cell are written, and the precision of the comparisons of the selected memory cell to each of the references must proportionally increase. Accordingly, as the number of bits per cell increases, making multi-bit-per-cell memory that uses these read techniques becomes difficult or impractical.
In analog semiconductor memory, each memory cell stores an analog value which can be converted to a multi-bit digital value. U.S. Pat. No. 5,638,320, entitled "High Resolution Analog Storage EPROM and Flash EPROM", to Wong et al. and U.S. patent application Ser. No. 08/622,332, entitled "Read Circuit which Uses a Coarse-to-Fine Search when Reading the Threshold Voltage of a Memory Cell", to Dunlap et al. describe analog memories and are incorporated by reference herein in their entity. Such analog memories have high resolution read and write circuits which precisely read and write threshold voltages. The same read and write circuits can be used in multi-bit-per-cell memory, but such use typically requires addition of a digital-to-analog converter (DAC) attached to or in the input or write circuitry of the memory and an analog-to-digital converter (ADC) attached to or in the output or read circuitry of the memory. The addition of such converters, particularly an ADC, can increase integrated circuit complexity and area and slow data access. Adding an ADC is particularly a concern because precision ADCs are typically much more complicated that DACs. Generally, an ADC requires multiple precision analog comparators while a DAC can be constructed with a relatively simple resistor tree. There is a need for effective and efficient circuits and methods that do not require additional converters to read precise threshold voltages that correspond to multi-bit digital values.